%% Author: John
%% Created: 2010-6-7
%% Description: TODO: Add description to processes
-module(processes).

%%
%% Include files
%%

%%
%% Exported Functions
%%
-export([max/1]).

%%
%% API Functions
%%
max(N)->
	Max=erlang:system_info(process_limit),
	io:format("_Maximum allowes processes :~p~n", [Max]),
    statistics(runtime),
    statistics(wall_clock),
    L=for(1,N,fun()->spawn(fun()->wait() end) end ),
    {_,Time1}=statistics(runtime),
    {_,Time2}=statistics(wall_clock),
    lists:foreach(fun(Pid)->Pid!die end, L),
    U1=Time1*1000/N,
    U2=Time2*1000/N,
    io:format("Process spawn time=~p(~p) micros~n",[U1,U2]).
    wait()->
	receive
		die->void
	end.

for(N,N,F)->[F()];
for(I,N,F)->[F()|for(I+1,N,F)].


%%
%% Local Functions
%%

